package org.xiaov.common.bean;

import lombok.*;

import java.io.Serializable;
import java.util.ArrayList;

/**
 * <p>
 * 描述：
 * </p>
 *
 * @author xiaovcloud
 * @since 2021/9/17 21:22
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AutoCodeInfo implements Serializable {
    private static final long serialVersionUID = 123123L;
    /**
     * 项目名
     */
    private String project;

    /**
     * 作者
     * 默认：auto-code-generation
     */
    private String author;
    /**
     * 数据库地址
     */
    @NonNull
    private String dbUrl;
    /**
     * 数据库驱动
     */
    @NonNull
    private String driverClassName;
    /**
     * 数据库用户名
     */
    @NonNull
    private String dbUsername;
    /**
     * 数据库密码
     */

    @NonNull
    private String dbPassword;
    /**
     * 表名
     */
    @NonNull
    private ArrayList<String> tables;
    /**
     * 是否开启swagger
     * 默认为 false 不开启
     */
    private boolean swagger;
    /**
     * 生成文件存放地址
     */
    @NonNull
    private String fileHost;
    /**
     * 包路径
     */
    @NonNull
    private String packPath;
    /**
     * 是否覆盖原来的文件
     * 默认为 false 不会覆盖
     */
    private Boolean fileOverride;

    /**
     * 表前缀
     * 添加此参数后,会在生成的文件中去掉前缀
     */
    private String tablePrefix;

    /**
     * 列字段是否下划线转驼峰命名
     * 默认为true，自动转化成小驼峰
     */
    private Boolean underLine2CamelCase;

}
